Don't assert in gtk_event_controller_constructed
authorMatthias Clasen <mclasen@redhat.com>
Tue, 27 May 2014 18:30:47 +0000 (14:30 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 27 May 2014 18:33:32 +0000 (14:33 -0400)
This prevents some of our generic object implementation tests
from working with gesture objects. Instead, add g_return_if_fail
checks in all the gesture constructors.

gtk/gtkeventcontroller.c
gtk/gtkgesturedrag.c
gtk/gtkgesturelongpress.c
gtk/gtkgesturemultipress.c
gtk/gtkgesturerotate.c
gtk/gtkgestureswipe.c
gtk/gtkgesturezoom.c

index ba3c7c6d1d98ad5fc640511000be876112e32674..b674380e19be1d8c064f32aa32fffd7155a454b5 100644 (file)
@@ -115,8 +115,8 @@ gtk_event_controller_constructed (GObject *object)
   GtkEventControllerPrivate *priv;
 
   priv = gtk_event_controller_get_instance_private (controller);
-  g_assert (priv->widget != NULL);
-  _gtk_widget_add_controller (priv->widget, controller);
+  if (priv->widget)
+    _gtk_widget_add_controller (priv->widget, controller);
 }
 
 static void
@@ -126,7 +126,8 @@ gtk_event_controller_dispose (GObject *object)
   GtkEventControllerPrivate *priv;
 
   priv = gtk_event_controller_get_instance_private (controller);
-  _gtk_widget_remove_controller (priv->widget, controller);
+  if (priv->widget)
+    _gtk_widget_remove_controller (priv->widget, controller);
 }
 
 static void
index 3f8f1e1d7191b2e84c9c8be42a06d295264236e9..0b53285cee695cd48cb1ab21502b083fc60ee334 100644 (file)
@@ -186,6 +186,8 @@ gtk_gesture_drag_init (GtkGestureDrag *gesture)
 GtkGesture *
 gtk_gesture_drag_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_DRAG,
                        "widget", widget,
                        NULL);
index 61e18d1c14511e234a5b2d37875808271c303f3b..f2971b3b3617a51d7df843fbd60af6f32532544c 100644 (file)
@@ -262,6 +262,8 @@ gtk_gesture_long_press_class_init (GtkGestureLongPressClass *klass)
 GtkGesture *
 gtk_gesture_long_press_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_LONG_PRESS,
                        "widget", widget,
                        NULL);
index 3fbe20f5f6616ae6838594c7fdbf235a64607d1a..1f499768fd9730a3572ef5d0577e178e5d9c6ca4 100644 (file)
@@ -384,6 +384,8 @@ gtk_gesture_multi_press_init (GtkGestureMultiPress *gesture)
 GtkGesture *
 gtk_gesture_multi_press_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_MULTI_PRESS,
                        "widget", widget,
                        NULL);
index e42f64174ebd98ff93abc19ecf20e26e7846ea7d..5b1aa7c91765db5476728774e03564f717b19bdb 100644 (file)
@@ -188,6 +188,8 @@ gtk_gesture_rotate_class_init (GtkGestureRotateClass *klass)
 GtkGesture *
 gtk_gesture_rotate_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_ROTATE,
                        "widget", widget,
                        NULL);
index 211789d2c6b258c3fefc05276e834b7c6c9d70c6..0ca5bb35dca34388fdc22ceb4584b9219aac6d8a 100644 (file)
@@ -237,6 +237,8 @@ gtk_gesture_swipe_init (GtkGestureSwipe *gesture)
 GtkGesture *
 gtk_gesture_swipe_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_SWIPE,
                        "widget", widget,
                        NULL);
index a80ebd12bdfe2422d9250a8f0bb285d3c6cba7e3..02e5a086951c791c2b8dbd8b7037e8821d462e55 100644 (file)
@@ -181,6 +181,8 @@ gtk_gesture_zoom_class_init (GtkGestureZoomClass *klass)
 GtkGesture *
 gtk_gesture_zoom_new (GtkWidget *widget)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
   return g_object_new (GTK_TYPE_GESTURE_ZOOM,
                        "widget", widget,
                        NULL);